package com.project.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.project.bean.OrderBean;

import java.time.LocalDate;
import java.util.List;

public interface IOrderService {
    int PAGE_SIZE = 3;
    /**
     * 分页查看所有订单，用户id为固定条件
     * @param pageNO 页码
     * @param userId 用户id
     * @return 分页对象
     */
    IPage<OrderBean> findAll(int pageNO,int userId);

    /**
     * 添加新订单，添加订单详情，同时清空该用户购物车的信息(结账)
     * @param order 订单对象
     * @param userId 登录用户id
     */
    void add(OrderBean order,Integer userId);

    /**
     * 按id查询订单明细，
     * 在订单明细需要查询购买商品的编号、商品名、单价
     * @param orderId 订单id
     * @return 订单对象
     */
    OrderBean findById(int orderId);

    /**
     * 管理员权限，动态分页查询所有订单
     * @param pageNO 页码
     * @param status 订单状态
     * @param startDate 起始日期
     * @param endDate 结束日期
     * @return 分页对象
     */
    IPage<OrderBean> findByItem(int pageNO,String status, LocalDate startDate,LocalDate endDate);

    /**
     * 发货（修改订单状态）
     * @param orderId 订单id
     * @param status 订单状态
     */
    void updateStatus(int orderId,String status);

    /**
     * 查询所有“发货中”的订单
     * @return 订单集合
     */
    List<OrderBean> findBySend();
}
